/**
 * @see https://umijs.org/docs/max/access#access
 * */

/**
 * 根据初始状态返回用户访问权限信息
 *
 * @param initialState 初始状态对象，可能包含当前用户信息
 * @param initialState.currentUser 当前用户对象，包含访问权限等信息，可能不存在
 * @returns 返回一个对象，包含用户是否具有管理员权限的布尔值
 */
export default function access(initialState: InitialState | undefined) {
  // 解构 initialState 对象中的 currentUser 属性，若 initialState 为 undefined 或 currentUser 不存在，则 currentUser 默认为 undefined
  const { loginUser } = initialState ?? {};

  // 返回一个对象，其中 canAdmin 属性表示当前用户是否有管理员权限
  // 如果有 currentUser 且 currentUser 的 access 属性为 'admin'，则 canAdmin 为 true，否则为 false
  return {
    canUser: !!loginUser,
    canAdmin: loginUser?.userRole === 'admin',
  };
}
